Topics in Parallel and Distributed Computing: Introducing Concurrency in Undergraduate Courses Chapter 5 Introducing Parallel and Distributed Computing Concepts in Digital Logic
نویسندگان
چکیده
This chapter provides a framework for introducing parallel and distributed computing (PDC) concepts as they arise naturally in digital logic. It is directed primarily towards the instructor of a first digital logic course, although a motivated student may find it useful as well. Because a digital logic course lays the foundation for other courses such as computer organization and architecture, an early exposure to PDC concepts will have a wide reach. Moreover, the introduction of these concepts through a less conventional direction complements and enhances understanding of these ideas when taught subsequently through conventional avenues such as programming, algorithms and architecture. Thus, while the chapter primarily addresses instructors of digital logic, instructors of courses more directly associated with PDC may also benefit by connecting the concepts to topics that students learned earlier. We also anticipate that casting digital logic concepts in multiple ways will also help students better understand digital logic. Relevant Core Courses Impacted: This chapter is primarily directed towards a first digital logic course but will indirectly impact learning in several courses such as computer 135 architecture and algorithms (including parallel and distributed), networking and interconnects, and computational complexity. Relevant PDC Topics: For a course whose primary focus is outside PDC, many of the PDC topics covered would be at the lower end of the Bloom taxonomy. However, we expect the real benefit of the proposed early exposure to PDC concepts would be in subsequent courses that address PDC topics more directly. The early (indirect) exposure to PDC would build a framework to which subsequently covered PDC topics can latch on to, leading to improved learning and retention. Table 5.1 shows the expected pedagogical level for a set of PDC concepts corresponding to the digital logic topics discussed in this chapter. Table (5.1) Pedagogical levels for PDC concepts, using K (know the term), C (comprehend so as to paraphrase or illustrate) and A (apply it in some way). Chapter Section PDC Concept 5.1 5.2 5.3 5.4 5.5 5.6 Concurrency, sequential/parallel C C C C A Interconnects, topologies K C C A Performance measures (latency, scalability, efficiency, trade-offs) K C C C Recursive decomposition, divide-and-conquer K C A Prefix computation C A (A)synchrony K C A Pipelining C Data hazards K Buses, shared resources K K Complexity, asymptotics K Dependencies, task graphs K Broadcast, multicast K Reduction, convergecast K C Learning Outcomes: The main purpose of this chapter is to provide a framework for introducing PDC topics while teaching digital logic. The following set of possible 136 learning outcomes must be viewed in this context. (1) Recognize basic interconnection structures. For example: tree, bus, mesh, torus. (2) Identify and apply parallel and sequential structures in hardware. For example: identify critical path in a circuit; explain concurrency in a carrylook-ahead adder; identify time-size trade offs in circuits such as adders; adjust parallelism in circuits to adjust delay. (3) Understand the concepts of recursive decomposition and divide-and-conquer. For example: apply recursive decomposition to circuit design (such as in a multiplexer); recognize the parallelism in independent branches of a recursion. (4) Understand the concept of a prefix computation. For example: explain the prefix computations present in a carry look-ahead adder and in a synchronous counter. (5) Explain the difference between synchronous and asynchronous operations. For example: asynchronous nature of latches and ripple counters. (6) Understand the concept of an ideal pipeline. For example: as a generalization of a shift register; as a form of parallelism. Context for Use: Hardware is inherently parallel and digital logic provides a fertile ground for exploring fundamental ideas in PDC at an early stage of the curriculum. It affords instructors an early opportunity to introduce key PDC concepts to which many students in electrical and computer engineering would otherwise not be exposed until much later in the academic program. Even for those students who receive an exposure to PDC concepts early in their programs, the digital logic context provides a different setting that serves to broaden their perspectives and understanding of key concepts in both PDC and digital logic. This chapter is intended to help the instructor incorporate PDC in the coverage of standard digital logic topics, rather than budget separate instruction time specifically 137 for PDC. It does not seek to add new topics to the digital logic course. Rather, it suggests a framework in which PDC topics can be introduced seamlessly through the instruction of digital logic topics. The discussion of PDC topics could be in class as a side note in a lecture, or a separate exploration off-line, perhaps as part of homework or a reading assignment. The level of the chapter assumes the digital logic instructor to have some PDC background. The goal, in most instances, is to augment standard approaches to the material and view digital logic topics from a different perspective, revealing PDC concepts already present in these topics. In some instances, the goal is to generalize a digital logic topic to a PDC application, both revealing the digital logic concept as a building block and motivating it by tangible applications. To facilitate simple integration, the material in this chapter is organized by digital logic topics (rather than by PDC concepts). Along the way, several PDC concepts will be visited, possibly multiple times and in increasing levels of complexity. This allows the instructor to select the set of PDC concepts to be discussed and the level of detail of the discussion. We also observe that in programs requiring digital logic, the material in this chapter could be utilized by instructors of mainstream PDC courses to draw analogies to (digital logic) concepts that students may have grasped earlier. The material in this chapter is meant to augment and illustrate digital logic concepts using PDC examples. Chapter Organization: The chapter has five sections (Sections 5.1–5.5) that discuss PDC ideas in the context of specific digital logic topics. Formalism has been employed in places to convey some ideas accurately, tersely and with some generality. This is directed to the instructor. We recommend that the instruction itself use simple examples without the formalism. As we noted earlier, the focus is on relating digital logic concepts to PDC ideas. Consequently, we do not discuss the PDC ideas themselves in much detail, often just offering an alternative view of the digital logic topic. A basic understanding of many of these
منابع مشابه
Topics in Parallel and Distributed Computing: Introducing Concurrency in Undergraduate Courses Chapter 4 Modules for Introducing Threads
This chapter presents a pair of modules for introducing students to parallel programming. Each module is built around an exploratory exercise to parallelize an application, which can be used in lab or lecture. They illustrate fundamental concepts such as speedup, race conditions, privatizing variables, and load balance. Variations teach students about explicit threading (in C, C++, or Java) and...
متن کاملTopics in Parallel and Distributed Computing: Introducing Concurrency in Undergraduate Courses Chapter 6 Networks and MPI for Cluster Computing
Cluster computing, message passing, and high performance networks form the foundation for high performance computing and modern supercomputers. This chapter will introduce the reader to the key concepts needed to understand how cluster computing differs from other types of distributed computing and provides a brief introduction to supercomputing. The material presented here is intended to be in...
متن کاملIntroducing Distributed Computing Concepts Into Discrete Mathematics Courses
Undergraduate computer science students typically have limited exposure to fundamental concepts of parallel and distributed computing. We show how one can integrate concepts from distributed computing into a course on discrete mathematics. Arguing about executions of distributed processes can motivate the students to learn more about the theory of ordered sets. Exploring questions on the minimu...
متن کاملTeaching Parallel and Distributed Computing topics for the Undergraduate Computer Science Student
Parallel and distributed systems programming skills has become a common requirement in the development of modern applications. It is imperative that an updated curriculum in computer science include these topics not only as advanced (often elective) programming courses. There is a general consensus that parallel programming topics should be spread in contents of several core courses and these t...
متن کاملGreen Energy-aware task scheduling using the DVFS technique in Cloud Computing
Nowdays, energy consumption as a critical issue in distributed computing systems with high performance has become so green computing tries to energy consumption, carbon footprint and CO2 emissions in high performance computing systems (HPCs) such as clusters, Grid and Cloud that a large number of parallel. Reducing energy consumption for high end computing can bring various benefits such as red...
متن کامل